package q3;

import q1.Local;
import q2.InterfaceRepositorio;
import q2.RepositorioLocais;
import utils.Constants;

public class CadastroLocais implements InterfaceCadastro {

	private InterfaceRepositorio rep;

	public CadastroLocais() {
		rep = new RepositorioLocais();
	}

	@Override
	public void adicionar(Object o) throws ObjetoExistenteException {
		if (rep.verificar(o)) {
			ObjetoExistenteException oee = new ObjetoExistenteException(Constants.OBJETO_LOCAL);
			throw oee;
		}

		rep.adicionar(o);
	}

	@Override
	public void remover(Object o) throws ObjetoNaoExistenteException {
		if (!rep.verificar(o)) {
			ObjetoNaoExistenteException onee = new ObjetoNaoExistenteException(Constants.OBJETO_LOCAL);
			throw onee;
		}

		rep.remover(o);
	}

	@Override
	public Object buscar(String key) throws ObjetoNaoExistenteException {
		Local l = (Local) rep.buscar(key);
		if (l == null) {
			ObjetoNaoExistenteException onee = new ObjetoNaoExistenteException(Constants.OBJETO_LOCAL);
			throw onee;
		}
		return l;
	}

	@Override
	public void atualizar(Object o) throws ObjetoNaoExistenteException {
		if (!rep.verificar(o)) {
			ObjetoNaoExistenteException onee = new ObjetoNaoExistenteException(Constants.OBJETO_LOCAL);
			throw onee;
		}
		rep.atualizar(o);
	}

}